
package com.yckj.dao;

import cn.hutool.crypto.SecureUtil;
import com.yckj.util.DbUtilHikari;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.SQLException;

/**
 * 对用户表的操作：注册用户、删除用户、查询用户、修改用户
 * @author wanghaoran
 * @version 1.0
 */
public class UserDao {
  /**
   * 用户注册
   * @param uname 用户名
   * @param upsw 密码
   * @return 注册成功返回1，否则返回0
   */
  public int insertUser(String uname,String upsw) {
    // 1. 声明一些变量备用
    // conn代表数据库连接
    Connection conn = null;
    // 预编译对象，用pstmt执行SQL语句
    PreparedStatement pstmt = null;
    // 注册成功与否的标志，如果是0注册失败；如果1注册成功
    int flag = 0;

    // 2. 获取连接
    conn = DbUtilHikari.getConnection();
    // 3. 定义并准备SQL语句
    String sql = "INSERT INTO users(username,userpsw) VALUES(?,?)";
    try {
      pstmt = conn.prepareStatement(sql);
      //4. 给?赋值
      pstmt.setString(1,uname);
      pstmt.setString(2,SecureUtil.md5(upsw));
      // 5. 执行SQL语句（下达执行指令）
      flag = pstmt.executeUpdate();
    } catch (SQLException throwables) {
      throwables.printStackTrace();
    } finally {
      // 6. 关闭数据库资源
      DbUtilHikari.close(pstmt,conn);
    }
    return flag;
  }
}
